home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / misc / math / Laplace.lha / Laplace / Data / Docs_english_doc.lha / Manual.doc < prev   
Encoding:
Text File  |  1996-09-19  |  40.3 KB  |  1,218 lines

  1. Welcome
  2. *******
  3.  
  4.    Welcome to LAPLACE V0.7 (Evaluation version). This manual describes
  5. the installation and usage of the LAPLACE program. The last update
  6. was on 17.9.1996.
  7.  
  8.    LAPLACE is MAILWARE!! Send me an e-mail or a postcard, if you like
  9. it!!  Please look at Copyright for more information.
  10.  
  11. Introduction
  12. ************
  13.  
  14. About
  15. =====
  16.  
  17.    LAPLACE is (or at least should be) an universal tool for
  18. mathematical calculations.  It lacks such a GUI with hundreds of
  19. windows like those other progs I've found on AMIGA.  Instead it works
  20. like a shell, you enter a command and get the result displayed, which
  21. is much more flexible.
  22.  
  23.    I started programming LAPLACE, because I was looking for a program
  24. for handling matrices, what I needed for my studies. First all programs
  25. I found were only able to handle floatpoints, but especially in matrix
  26. calculations this leads quite fast to large errors. So I made a simple
  27. prog that handled fractions instead of floatpoints. After that I needed
  28. something to handle parameters in matrices, and so I started totally
  29. rewrote LAPLACE. This is the result.
  30.  
  31. Copyright
  32. =========
  33.  
  34.    (C)1996 by A VISION OF PARADISE
  35.  
  36.    This is only an evaluation version of LAPLACE. I plan to make it
  37. SHAREWARE, when it reaches a reasonable state. For know LAPLACE is
  38. MAILWARE. This means that you should send me a short e-mail or a
  39. postcard, if you can't use the Internet.  This way I will know, whether
  40. there is a demand for my program and it does NOT mean anything like
  41. registrating to LAPLACE or like wise. If there should be a SHAREWARE
  42. version, you'll have to pay it (if you want ;-)
  43.  
  44.    You are not allowed to take money for distributing LAPLACE, except
  45. for Urban Mueller and his AMINET CD-collection.
  46.  
  47.    You may distribute LAPLACE only as the original archive
  48. (Laplace.lha), which can be found in the AMINET in
  49. misc/math/Laplace.lha.
  50.  
  51.    You are not allowed to distribute modified versions of LAPLACE.
  52. You may use modified version for your own, but I take absolutelly NO
  53. responsilibity for anything in this case (I even hard for ME to
  54. understand, what's happening inside of LAPLACE, so it's quite likely
  55. that you won't understand it at all ;-)
  56.  
  57.    Use it on your own risk. If you plan to build a nuclear plant, I take
  58. absolutely NO responsibility for uncontrolled chain reaction caused by
  59. false calculations!!!
  60.  
  61.    I used the following tools to create LAPLACE:
  62.  
  63.    * MUI V3.3 by Stefan Stuntz (see also Docs/Readme.mui).
  64.  
  65.    * DICE V2.07 by Matthew Dillon.
  66.  
  67.    * ENFORCER V37 by Michael Sinz.
  68.  
  69.    * GOLDED V3.1.4 by Dietmar Eilert.
  70.  
  71.    * REVUP V1.3 by Boris Folgmann.
  72.  
  73.    * FLEXCAT V1.3 by Jochen Wiedmann.
  74.  
  75.    * MAKEGUIDE V1.54 by Reinhard Spisser and Sebastiano Vigna.
  76.  
  77.    * MUCHMORE V4.1 by Fiedtjof Siebert and Christian Stiens.
  78.  
  79. Registration
  80. ============
  81.  
  82.    Since LAPLACE is currently FREEWARE, there's no need to register.
  83. But you may send comments, bug report, flames etc. of course.
  84.  
  85. Address
  86. =======
  87.  
  88.    This master piece of programming arts was done by
  89.  
  90.     P!\K of /|_ __   . /\  |\__: /|____  /\__:__/\  .
  91.            /   |  \  :/  \ |   |/      \/    |    \ :
  92.          _/    |   \_|  \ \|  _/   |\   \___   ___/ |
  93.          \     |     |   \ \  \    |/   /         \ |
  94.           \ _________|____\  _/\ ______/\  __|__  / :
  95.            \|        :     \/   \|       \/  ·  \/  .
  96.     
  97.  
  98.                                 s-mail:
  99.  
  100.                           Benjamin Stegemann
  101.  
  102.                           Rohrbacher Str. 66
  103.  
  104.                            69115 Heidelberg
  105.  
  106.                                 Germany
  107.  
  108.                                 e-mail:
  109.  
  110.                    bstegema@ix.urz.uni-heidelberg.de
  111.  
  112.                 bstegema@urz-mail.urz.uni-heidelberg.de
  113.  
  114.                                  WWW:
  115.  
  116.              http://www.rzuser.uni-heidelberg.de/~bstegema
  117.  
  118.    Actual versions of LAPLACE can be found in the AMINET directory
  119. misc/math/.
  120.  
  121.    If you are interested in other programs I've done so far, look at
  122. these:
  123.  
  124.    * ShuffleRun - Funny arcarde game for two or more players,
  125.      including tournament mode.
  126.  
  127.    * Writer - Creates totally stupid texts, based on any ASCII input.
  128.      Even greatest literature will be shamelessly blown up!!
  129.  
  130.    * TreeGrow - Create fractal tree images.
  131.  
  132.    * GED_Syntax - LaTeX and Texinfo Syntax parser for GoldED4. Can be
  133.      found at
  134.  
  135.    * GED_Syntax - LaTeX and Texinfo Syntax parser for GoldED4.
  136.  
  137.    These progs are not available on AMINET, sorry, but it's quite old
  138. stuff..
  139. Oh, almost forgot it, they are published on Fish disks, wait a moment,
  140. I will see which ones..
  141. Jo, back again, it's 814 (TreeGrow), 815 (ShuffleRun) and 818
  142. (TankHunter).  Writer is (or was) available on BBS.
  143. If you are really interested, send me a mail.
  144.  
  145.    * GED_Syntax - LaTeX and Texinfo Syntax parser for GoldED4. Can be
  146.      found at text/edit/GED_Syntax.lha.
  147.  
  148.    * PGP_GED4 - PGP for GoldED4. Just a modified ARexx script by Lunz
  149.      O. Wolfgang.  Can be found at text/edit/PGP_GED4.lha.
  150.  
  151. Greets
  152. ======
  153.  
  154.    Thanks must go to (in alphabetical order):
  155.  
  156.        Lauri Aalto (support), Anders Bakkevold (Amiga Translators'
  157. Organisation), Volker Barthelmann (support), Lars Bischoff
  158. (support), Michael Bock (support), Dirk Burkamp (support),
  159. Christoph Dahlen (support), Matthew Dillon (DICE), Walter
  160. Dörwald (icons), Dietmar Eilert (GOLDED), Mattias p. Eriksson
  161. (icons), Boris Folgmann (REVUP), Grazgur (support), Michael 'Mick'
  162. Hohmann (icons), Martin Huttenloher (icons), Mario Kemper
  163. (support), Lars Malmborg (support) Konstantinos Margaritis
  164. (support), Andreas Mayer (support) Frederik Orinius (support),
  165. Sotirios Pappas (support) Christoph Rickers (support), Thomas
  166. Schraitle (support), Fiedtjof Siebert (MUCHMORE), Michael Sinz
  167. (ENFORCER), Reinhard Spisser (MAKEGUIDE), Christian Stiens
  168. (MUCHMORE), Stefan Stuntz (MUI), TracerKen Tyler (support),
  169. Sebastiano Vigna (MAKEGUIDE), Jochen Wiedmann (FLEXCAT)
  170.  
  171.    And all other folks around this crazy planet, who support the
  172. AMIGA!!!!
  173.  
  174.     P!\K of /|_ __   . /\  |\__: /|____  /\__:__/\  .
  175.            /   |  \  :/  \ |   |/      \/    |    \ :
  176.          _/    |   \_|  \ \|  _/   |\   \___   ___/ |
  177.          \     |     |   \ \  \    |/   /         \ |
  178.           \ _________|____\  _/\ ______/\  __|__  / :
  179.            \|        :     \/   \|       \/  ·  \/  .
  180.  
  181. Getting started
  182. ***************
  183.  
  184. Requirements
  185. ============
  186.  
  187.    * 68020 CPU or better.
  188.  
  189.    * OS3.0 (V38) or better.
  190.  
  191.    * MUI3.3 (see also Docs/Readme.mui).
  192.  
  193.    * and a FAAAAAST AMIGA...
  194.  
  195. Installation
  196. ============
  197.  
  198.    Since LAPLACE is still under development, I didn't write an
  199. installer script ;-)
  200.  
  201.    But, don't be afraid, installing is really easy!! Just drag the
  202. whole LAPLACE directory to any place you like, no libs, fonts,
  203. catalogs to install. Even an assign isn't needed anymore.
  204.  
  205.    You may add the assign Laplace: to the LAPLACE directory, then
  206. this assign will be uses as PROGDIR:, but this is currently not very
  207. useful at all (except for me, as I need this to find all files when
  208. debugging...).
  209.  
  210. Tooltypes
  211. =========
  212.  
  213.    You may enter some tooltypes to the icon of LAPLACE. To do this,
  214. select the icon on the workbench and choose Icons/Information from
  215. the workbench menu. Then modify the list of tooltypes using the (quite
  216. bad) edit functions.
  217.  
  218.    Tooltypes are supplied using this format:
  219.  
  220.      1. KEYWORD
  221.      2. KEYWORD=value
  222.  
  223.    Syntax 1 is for tooltypes marked as switch. The descripted action
  224. is performed, if this keyword is found. To disable it, simple set the
  225. keyword in brackets.
  226.  
  227.    Tooltypes marked as string use syntax 2.
  228.  
  229.    Unknown keyword will be ignored, syntax is caseinsensitive.
  230.  
  231.    Supported tooltypes are :
  232.  
  233. AREXXONLY
  234.      (switch)
  235.      If specified LAPLACE won't open a window on startup, but starts
  236.      iconified; only an application icon will be shown on the
  237.      workbench. The first window is opened when doubleclicking on the
  238.      application icon or uniconifying LAPLACE on another way. This is
  239.      useful, if you want don't want to use LAPLACE directly, but only
  240.      through it's ARexx port.
  241.  
  242. QUIETEXIT
  243.      (switch)
  244.      If specified LAPLACE will not complain about forgotten objects.
  245.  
  246. AUTOLOAD
  247.      (string)
  248.      Here you can specify a file to be loaded everytime LAPLACE
  249.      starts.  I needed this mainly for testing...
  250.  
  251. PREFS
  252.      (string)
  253.      Specify a path for the preferences file to be used instead of
  254.          PROGDIR:Laplace.prefs.
  255.  
  256. Usage
  257. *****
  258.  
  259. Working with Laplace
  260. ====================
  261.  
  262.    LAPLACE works much like a shell, you enter an expression, press
  263. return and LAPLACE gives you the result (after some time;-). See
  264. Editing or Menus for more about text editing width LAPLACE.
  265.  
  266.    LAPLACE's processing is based on objects. You can define new
  267. objects and reference them later. Have a look at Expressions and
  268. Definitions.
  269.  
  270.    When a new window is opened, LAPLACE will do several things to
  271. setup the environment:
  272.  
  273.    * load options from Presets/Default.opts.
  274.  
  275.    * load F-keys from Presets/Default.fkey.
  276.  
  277.    * execute the command include(Init.lh).  You may modify all these
  278. files, to adjust the environment to your needs.  See also Presets or
  279. Libraries.
  280.  
  281.    To load and save sessions, see Project.
  282.  
  283. Editing expressions
  284. ===================
  285.  
  286.    Well, I think the basic edit functions are now available.
  287.  
  288.    Clipboard is supported, but currently only whole lines can be
  289. cuttedcopied and pasted.
  290.  
  291.        Insert line inserts a line before the current line; to insert
  292. a line at the end, just press  <return> in the last line.  Double
  293. clicking on a line, works just line pressing return.
  294.  
  295.    Here are the keys that you can use for editing :
  296.  
  297. backspace
  298. del
  299. left
  300. right
  301. up
  302. down
  303.      guess what..
  304.  
  305. shift left
  306. shift right
  307.      advance one word
  308.  
  309. alt left
  310.      goto beginning of line
  311.  
  312. alt right
  313.      goto end of line
  314.  
  315. alt up
  316.      goto first line
  317.  
  318. alt down
  319.      goto last line
  320.  
  321. ctrl up
  322.      move one item up in history
  323.  
  324. ctrl down
  325.      move one item down in history
  326.  
  327. ctrl-shift up
  328.      move to first item in history
  329.  
  330. ctrl-shift down
  331.      move to last item in history
  332.  
  333. esc
  334.      undo changes in current line. This work only, as long as you don't
  335.      leave the line.
  336.  
  337. return
  338.      evaluate the current line and advance to the next line.
  339.  
  340. shift return
  341.      evaluate the current line and insert a new line after it.
  342.  
  343. alt return
  344.      split the current line at the cursor position and insert a new
  345.      line after it.
  346.  
  347. shift backspace
  348.      erase current line from cursor position to the beginning of the
  349.      line.
  350.  
  351. shift del
  352.      erase current line from cursor position to the end of the line.
  353.  
  354. alt backspace
  355.      clear the current line.
  356.  
  357. alt del
  358.      clear the result of the current line.
  359.  
  360. ctrl tab
  361.      pop up a list of all available objectes of the current context.
  362.      Select an entry and it will be inserted at the current cursor
  363.      position.
  364.  
  365. alt tab
  366.      pop up a list of all available functions
  367.  
  368. Fn
  369. shift Fn
  370.      insert the string linked to a F-key
  371.  
  372. Menus
  373. =====
  374.  
  375. Project
  376.     About
  377.           ;-)
  378.  
  379.     About MUI
  380.           about MUI, what else
  381.  
  382.     New window
  383.           Open a new, blank window
  384.  
  385.     Clear
  386.           Clears the current window
  387.  
  388.     Load..
  389.           Open a project file
  390.  
  391.     Quickload
  392.           Fast access to some project files. Use
  393.           Project/Preferences to modifiy the list.
  394.  
  395.     Save
  396.           Save a project file. Use the current path or select a new
  397.  
  398.     Save as..
  399.           Save a project file. Select a new path
  400.  
  401.     Delete..
  402.           Delete project files. They will be lost forever!
  403.  
  404.     Preferences..
  405.           Opens the preferences window, see below for more information,
  406.  
  407.     MUI Prefs
  408.           Open MUI preferences window
  409.  
  410.     Quit
  411.           NOOOOOOOO :-O
  412.  
  413. Edit
  414.     Cut
  415.     Copy
  416.     Paste
  417.     Insert line
  418.     Remove line
  419.           see Editing
  420.  
  421. Windows
  422.     Debug
  423.           Opens the debug window with a list of all debug strings.
  424.  
  425. Options
  426.     Edit...
  427.           Here you specifiy the default values for dynamic options (see
  428.           Options for a full description) and the strings that are
  429.           connected to the F-keys.
  430.  
  431.           The defined strings will be inserted into the current line,
  432.           if you you hit an F-key. There are some special code that can
  433.           be inserted into the string. They are introduced with a
  434.           %. If a % should be inserted, you have to enter
  435.           %%. Possible codes are:
  436.  
  437.          %l
  438.                move the cursor one step to the left.
  439.  
  440.          %(l n)
  441.                move the cursor n steps to the left.
  442.  
  443.          %r
  444.                move the cursor one step to the right.
  445.  
  446.          %(r n)
  447.                move the cursor n steps to the right.
  448.  
  449.          %(run command)
  450.                execute the given shell command.
  451.  
  452.           The options and F-keys are saved in each project file, but
  453.           they can explicitly be loaded and saved to preset files.
  454.  
  455.     Load...
  456.           Load options or F-keys from a preset file. You can also
  457.           select a project file.  In this case the options/F-keys will
  458.           be extracted from the project.
  459.  
  460.     Save...
  461.           Save options or F-keys to a preset file.
  462.  
  463. ARexx
  464.      A list of ARexx macros. Use Project/Preferences to modify it.
  465.  
  466. Help
  467.     Index
  468.           Loads this file, displaying the main page.
  469.  
  470.     Functions
  471.           Loads the file Docs/../Functions, displaying a menu of all
  472.           functions.
  473.  
  474.     Rexx
  475.           Loads the file Docs/../ARexx, which describes the usage of
  476.           the ARexx port.
  477.  
  478.     Search...
  479.           Opens a window, where you can specify a keyword to search
  480.           for. If the keyword is found the file will be opened on the
  481.           correct page. Note that the text window runs asyncron, which
  482.           means that you can leave the window opened while working.
  483.           You don't even have to close the window to continue the
  484.           search. Just bring the 'Searching...' window to front, select
  485.           'Continue' and the next page containing the keyword will be
  486.           loaded into the textwindow.
  487.  
  488. Preferences
  489. -----------
  490.  
  491.    bla bla bla...
  492.  
  493. Projects
  494. ========
  495.  
  496.    LAPLACE saves project files as plain ASCII files, you may edit
  497. them with any standart text\-editor. Projects are usually placed in the
  498. Projects directory.
  499.  
  500.    All options (see Menus) and the F-key definitions are save in the
  501. project file, the same format as in preset files is used.
  502.  
  503. Presets
  504. =======
  505.  
  506.    Options are saved as plain ASCII files, and are usually stored in the
  507. Presets directory. The can be edited by any standart texteditor.
  508.  
  509.    The line format is quite simple: a line starts with an # followed
  510. by a keyword, a = and the value for this option. You must not insert
  511. any spaces, except otherwise stated below. E.g.
  512.      #USEFLOAT=TRUE
  513.      #ERRBND=12
  514.  
  515. Options
  516. -------
  517.  
  518.    Options (marked with a x in Menus) are saved in files ending with
  519. .opts. The keywords are:
  520.  
  521. #USEFLOAT
  522.      set to TRUE or FALSE
  523.  
  524. #SIMPLIFY
  525.      set to TRUE or FALSE
  526.  
  527. #ERRBND
  528.      an integer value between 1 and 32
  529.  
  530. #EXPDSP
  531.      an integer value between 1 and 12
  532.  
  533. #PREC
  534.      an integer value between 0 and 15
  535.  
  536. F-keys
  537. ------
  538.  
  539.    The F-key definitions are saved in files ending with .fkey. The
  540. keyword is followed by the string for the key, the whole rest of the
  541. line is used, including all spaces.
  542.  
  543. #F1 ... #F10
  544.      normal F-keys 1..10
  545.  
  546. #F11 ... #F20
  547.      shifted F-keys 1..10
  548.  
  549. Expressions
  550. ===========
  551.  
  552.    Expressions are entered in a usual manner, e.g.
  553.      1+2/3*(4-2) <return>
  554.  
  555.    Guess what's the result...
  556.  
  557.    More formally, an correct expression is:
  558.  
  559.    * object (Types) or
  560.  
  561.    * reference (Definitions) or
  562.  
  563.    * function (Functions/Functions) or
  564.  
  565.    * expression list (see below) or
  566.  
  567.    * expression binary_operator expression
  568.  
  569.    * unary_operator expression
  570.  
  571.    Binary operators are:
  572.  
  573. +-*/^
  574.      you should know these...
  575.  
  576. ×
  577.      vector product. This is not an usual x, but can be reached by
  578.      alt-x!
  579.  
  580. ||
  581.      boolean or
  582.  
  583. &&
  584.      boolean and
  585.  
  586. ==!=><<=>=
  587.      comparison
  588.  
  589.    The only unary operator is:
  590.  
  591. !
  592.      boolean negation
  593.  
  594.    You may enter several expression at once, seperated by commas, e.g.
  595.      1+2,2/4,12+10 <return>
  596.    The results will be displayed seperated by lines.
  597.  
  598. Expression List
  599. ---------------
  600.  
  601.    An expression list is an list of expression seperated by commas
  602. embedded in {} brackets or supplied to the do() command.
  603.  
  604.    All expressions will be evaluated, but only the last result will be
  605. used.  The result of the list will be this last result. This makes only
  606. sense with functions like debug(). E.g.
  607.      sin({debug("Hello world!"), pi/2}) <return>
  608.  
  609. Types and objects
  610. =================
  611.  
  612.    LAPLACE supports currently six types of objects : Number,
  613. BooleanVectorMatrixEquation and Sets.
  614.  
  615.    Usually LAPLACE determines the type of an object when it is
  616. created. If you declare a constant object, you have to specify the type
  617. it should have.  To do so, you use the const() function with
  618. identifiers of the format name:type. This will create a new object
  619. with the specified name and type. Allowed types are
  620.  
  621. nnumber
  622.      number object (default, if you don't give a type)
  623.  
  624. vvecvector
  625.      vector object of any dimension
  626.  
  627. v[d]vec[d]vector[d]
  628.      vector object of dimension d
  629.  
  630. mmatmatrix
  631.      matrix object of any size
  632.  
  633. m[r,c]mat[r,c]matrix[r,c]
  634.      matrix object with r rows and c columns
  635.  
  636.    For example:
  637.      const(a:vec[3])
  638.      [1,2,3;4,5,6;7,8,9] * a
  639.  
  640. Number
  641. ------
  642.  
  643.    These are just numbers as well all know them (or do we know them
  644. all?!).
  645.  
  646.    Numbers can be entered in exponential style, which is
  647.     {+/-/<nothing>}ddddd[.ddddd][e{+/-/<nothing>}dddd].
  648. Ufff, but it's quite easy;-) to enter e.g. 6.626 * 10^(-34) write
  649. 6.626e-34. The (whole) number after e is just the exponent. Don't
  650. use brackets, if the exponent is negative!
  651.  
  652.    LAPLACE supports complex numbers. To enter a complex number,
  653. simply write something like a + b*i. But they are not fully
  654. implemented, e.g.  errordistribution is lost when you have complex
  655. value in your expression and not all functions work now with complex
  656. arguments.
  657.  
  658.    As long as you enter only whole numbers, LAPLACE tries to use
  659. fractions, so enter 1/2 instead of 0.5 (in this simple case
  660. LAPLACE converts 0.5 to 1/2 itself, but this may not always
  661. work). This way you can enter things like 1/7 exactly, and you won't
  662. get result which are almost exact zero, when it should be exact ;-)
  663.  
  664.    A fantastic new feature of LAPLACE is the direct support of
  665. Gaussian errordistribution. Now it is possible to enter values with
  666. their standart error, do what ever calculations you have to do, and
  667. then get the result with the correct error value! This is very useful,
  668. if you are calculating with result of some measurements, like I did
  669. during my physical practial.
  670.  
  671.    For example, you want to measure the earth accelaration by measuring
  672. the falling time of a ball. You measured the falling height to 1.119
  673. meters with a precision of one millimeter and the time to 0.50 seconds
  674. with a precision of 1/50 second.  Now simply enter:
  675.      t=0.50±0.02
  676.      h=1.119±0.001
  677.      g=2*s/h^2
  678.    and that's all!! (Next time you should do it more precisely..)
  679.  
  680.    The ± can be entered by alt-y (on the german keyboard) or
  681. alt-z (on others).
  682.  
  683.    But you should be aware, that in some cases you might get wrong
  684. result, because 10±1 * 10±1 is not the same as 10±1 ^ 2. So, if
  685. the same value is used at different places in a formula, it is
  686. evaluated as if they had indepented error ranges!
  687.  
  688.    The best way to avoid this is declaring all values with errors as
  689. parameters, construct you (possibly big) formula and simplify it, so
  690. that every parameter occures only a single time, e.g.:
  691.      x := 10±1
  692.      y := 12±2
  693.      a = 3*x^2*y^3
  694.      b = 5*x^3*y^2
  695.      result = a/b
  696.      eval(result)
  697.  
  698.    If you on the other hand have something like this:
  699.      x := 10±1
  700.      result = x/(x+1)
  701.    you'll get a wrong error value and there is no way to avoid it,
  702. sorry.
  703.  
  704. Boolean
  705. -------
  706.  
  707.    A boolean object can only contain the two values TRUE and
  708. FALSE.
  709.  
  710.    Possible operation for boolean objects are: && (and), || (or) and
  711. ! (not).
  712.  
  713.      a=TRUE
  714.      b=FALSE
  715.      c=TRUE
  716.      a && (b || !c)
  717.  
  718. Vector
  719. ------
  720.  
  721.    A vector is a tupel of numbers. To create a vector (2,4,1) enter
  722. [2,4,1].  Any expression can be (of course) a component of a vector.
  723.  
  724.    You can add and multiply (scalar) two vectors, or multiply a
  725. number or matrix with a vector (in this order, not vector *
  726. number!). You get the vector product of two 3-dimensional vector by
  727. typing vector × vector. The × is not an ordinary x, but can be
  728. entered by alt-x (on the german keyboard and probably all others,
  729. too).
  730.  
  731. Matrix
  732. ------
  733.  
  734.    A matrix is something like a 2-dimensional vector.. (if you don't
  735. know what's this, you probably won't need them ;-) A matrix with the
  736. columnvectors (1,2,3)(4,5,6) and (7,8,9) can be created with
  737. [1,2,3;4,5,6;7,8,9].  If you have rowvector in mind, use
  738. [1,4,7;2,5,8;3,6,9]~ instead (append a 'tilde').
  739.  
  740.    You can add and multiply two matrices, or multiply a number and a
  741. matrix (in this order, not matrix * number!).
  742.  
  743. Equation
  744. --------
  745.  
  746.    To create a equation use the eq() command.
  747.  
  748.    You can of cource calculate with equations. The operations will be
  749. applied on both side of the equation. You can add or multiply two
  750. equations. If you add or multiply a numbervector or matrix to
  751. an equation, the equation has to be on the left side, e.g.
  752.      a=eq(2*x+4,0) <return>
  753.      a=a-4 <return>
  754.      a=a/2 <return>
  755.  
  756.    You can also apply functions line sin()exp()... on equations,
  757. e.g.
  758.      a=eq(ln(x),12*e) <return>
  759.      a=exp(a) <return>
  760.  
  761. Set
  762. ---
  763.  
  764.    To create a set use the set() command.
  765.  
  766.    A set is a set (?!?) of objects of the same type. Currently there
  767. are some statistic functions that can be applied to sets.
  768.  
  769.    If you calculate with sets, all operations (exept those affecting
  770. the set directly) are applied to all elements of the set, e.g.
  771.      s=set(1,2,3) <return>
  772.      s+2 <return>
  773.    This will return the set {3,4,5}
  774.  
  775. Definitions
  776. ===========
  777.  
  778.    If you want to use an result later or just define a variable, write
  779. name = expression. This creates an objects that can be referenced by
  780. it's name in later(!) lines. If you reference to an object,
  781. LAPLACE searches from the actual line back, so you may define an
  782. object several times, but only the latest version is used. E.g.
  783.      [1] a=1/2 <return>
  784.      [2] 2*a <return>
  785.      => gets 'a' from [1]
  786.      [3] a=a+1 <return>
  787.      => 'a' on the right side references to the definition in [1]
  788.      => and creates a new object called 'a' to be referenced below
  789.      [4] a <return>
  790.      => gets 'a' from [3]
  791.  
  792.    If you move back to [2], you still get the same result, because the
  793. new a is defined below and cannot be reference from [2].
  794.  
  795.    If LAPLACE encounters a object name, that was not defined earlier,
  796. an constant will be automatically created:
  797.      f(x) = x^2 <return>
  798.      f(a) <return>
  799.      => a^2
  800.    This is the same as
  801.      f(x) = x^2 <return>
  802.      const(a) <return>
  803.      f(a) <return>
  804.      => a^2
  805.  
  806.    This work only for number constants. If you require e.g. a constant
  807. vector object, you have to use const() to declare it.
  808.  
  809.    Generally you should always declare constants with const(),
  810. otherwise you are in danger that the reference has already been defined
  811. (e.g. in a library file) and you get an type error, look at this:
  812.      a=[1,2]
  813.      ....
  814.      [thousand of lines...]
  815.      ....
  816.      f(x)=x^2
  817.      f(a)
  818.      error--> Not defined to vectors.
  819.  
  820. Conventions
  821. -----------
  822.  
  823.    There are some special conventions for object names. Valid
  824. characters are A..Z Ö Ä Ü a..z ö ä ü 0..9 @ § $ ' ~ _. You may
  825. not use a number as the first character.
  826.  
  827.    There are two special characters which may be used: ~ (tilde) and
  828. _ (underscore). _ as the first character will create a line above
  829. the name, which is often used in mathematics. Inside the name _ will
  830. create an index, character after _ will be used as the index at the
  831. bottom of the name. ~ work similar, but creates an index at the
  832. Usage. You can use both indexes. E.g. _aa_1a~1 or everything
  833. at once _a~2_1.
  834.  
  835.    Starting with version 0.3 LAPLACE support the usage of greek
  836. symbols. If the name or an index matches the name of a greek letter,
  837. then this letter is used to display the variable. Number may follow the
  838. letter name. E.g. alpha1_beta. A name in lower case represents a
  839. small greek letter; if the first character of the name is uppercase,
  840. then you get an big greek letter. All supported names are :
  841.  
  842.        alphabetagammadeltaepsilonzetaeta,
  843. thetajotakappalambdamynyxiomikron,
  844. pirhosigmatauypsilonphichipsi,
  845. omegaAlphaBetaGammaDeltaEpsilonZeta,
  846. EtaThetaJotaKappaLambdaMyNyXi,
  847. OmikronPiRhoSigmaTauYpsilonPhiChi,
  848. PsiOmega
  849.  
  850. Definition types
  851. ----------------
  852.  
  853.    There are three difference kinds of definitions : variables,
  854. parameters and constants.
  855.  
  856. Variables
  857. .........
  858.  
  859.    When you reference a variable, it's contents will be inserted.
  860. Variable are defined using name = expression. E.g.
  861.      a=3 <return>
  862.      a+1 <return>
  863.      => 4
  864.  
  865. Parameters
  866. ..........
  867.  
  868.    A reference to a parameter will not be evaluated, it will remain
  869. in the result.  Use name := expression to create a parameter. If you
  870. want to get the final result use the eval() function. E.g.
  871.      a:=3 <return>
  872.      2*(a+2) <return>
  873.      => 2*a+4
  874.      eval(2*(a+2)) <return>
  875.      => 10
  876.  
  877. Constants
  878. .........
  879.  
  880.        Constants have no value, so they won't be evaluate, even with
  881. the eval() function. They are defined using the const() function.
  882. E.g.
  883.      const(a) <return>
  884.      2*(a+2) <return>
  885.      => 2*a+4
  886.      eval(2*(a+2)) <return>
  887.      => 2*a+4
  888.  
  889. Functions
  890. .........
  891.  
  892.    You can also define functions. Just enter a argument list embedded
  893. in bracket after the object name, e.g.
  894.      f(x):=x^3 <return>
  895.  
  896.    The arguments will be handled like constants in the function
  897. expression. If you want to use other object type than numbers, you have
  898. to specify the type in the parameter list, the format is line in
  899. const().
  900.  
  901.    When referencing a function you have to specify the arguments to be
  902. inserted into the function's expression, e.g.
  903.      f(3) <return>
  904.      => 27
  905.      const(a) <return>
  906.      f(a+1) <return>
  907.      => (a+1)^3
  908.  
  909.    It is also possible to omit the arguments; if you do so,
  910. LAPLACE will insert the arguments as they were defined, e.g.
  911.      f(x,y) = x^2 + y^2 <return>
  912.      f'(x,y) = diff(f(x,y),x) <return>
  913.      f'(x,y) = diff(f,x) <return>
  914.    Note that the last two lines are the same, because f will be
  915. expanded to f(x,y).
  916.  
  917. Libraries
  918. =========
  919.  
  920.    LAPLACE offers the ability to process external files. These files
  921. are plain ASCII files and may be edited with every texteditor. These
  922. files will be processed, just as if each line would be entered, blank
  923. lines and lines with leading ; will be ignored. The results won't be
  924. displayed, so this is only useful for constant and function
  925. definitions. Library files have a trailing .lh and are located in the
  926. Include directory.  Use the include() command to gain access to a
  927. library.
  928.  
  929.    Some basic files are included:
  930.  
  931. Init.lh
  932.      This file will always processed, when a new window is opened.
  933.  
  934. InitARexx.lh
  935.      This file will be processed during the initialization of the
  936.      ARexx-port.
  937.  
  938. math.lh
  939.      Some useful mathmatical definition.
  940.  
  941. physic.lh
  942.      Some useful physical definition.
  943.  
  944.    If you want a library to be available on startup add a line
  945. include(libname.lh) to the file Include/Init.lh, which is
  946. always processed on startup.
  947.  
  948. Options
  949. =======
  950.  
  951.    There are some options to influence to calculation or presentation
  952. of expression.  They are marked with a $ (dollar sign) following a
  953. keyword, a = and the new value.
  954.  
  955.    As always, LAPLACE searches backwards until it finds an option,
  956. this way setting an option will not influence the lines above. If not
  957. explicit assignment has been done, the default value is used. To modify
  958. these defaults, use the menu item Options/Edit....
  959.  
  960.    These are the keyword:
  961.  
  962. $usefloat
  963.      Possible value: TRUEFALSE. If set to TRUELAPLACE will
  964.      always use floatpoints and never converts them to fractions.
  965.  
  966. $useerror
  967.      Possible value: TRUEFALSE. If set to FALSELAPLACE will
  968.      not use and display error ranges.
  969.  
  970. $simplify
  971.      Possible value: TRUEFALSE. Enable/Disable simplification
  972.      pass. Without simplification, the calculation will be faster, but
  973.      the result might look quite ugly.
  974.  
  975. $dispprec
  976.      Possible value: 1..15. Select maximum number of decimal digits
  977.      to be displayed.
  978.  
  979. $dispexp
  980.      Possible value: 1..12. Select number of digits to be displayed
  981.      before switching to exponential display.
  982.  
  983. $convprec
  984.      Possible value: 1..32LAPLACE tries to convert floatpoints
  985.      into fractions whenever possible.  But the floatpoint routines are
  986.      not too exact, so there might be an small difference to the
  987.      correct value (e.g. 1.2000000000000001 when it should be 1.2).  If
  988.      the difference is smaller than the specified precision (precision
  989.      12 means 10^(-12)), LAPLACE assumes the value as a fraction and
  990.      converts it (in this case to 6/5).  This is not applied to value
  991.      near zero, so 1e-30 won't be converted to 0.
  992.  
  993.    For example:
  994.      $usefloat=FALSE
  995.      sin(2) => sin(2)
  996.      $usefloat=TRUE
  997.      $dispprec=5
  998.      sin(2) => 0.9093
  999.      $dispprec=8
  1000.      sin(2) => 0.90929743
  1001.      a=12000.3
  1002.      $dispexp=3
  1003.      a => 1.20003*10^4
  1004.      $dispexp=6
  1005.      a => 12000.3
  1006.  
  1007. Online help
  1008. ===========
  1009.  
  1010.    To get a short description of a function, you can enter
  1011. ?functionname, e.g.
  1012.      ?const
  1013.      => const(name1[:type],name2[:type],...) : create constant objects
  1014.  
  1015.    To get a full description use ??functionname.
  1016.  
  1017.    You can also use ??intro as an entrypoint to the complete online
  1018. documentation.
  1019.  
  1020. To do
  1021. *****
  1022.  
  1023.    As I said before, this is only an evaluation version, so there are
  1024. quiet a lot of things left to do, before I release LAPLACE as
  1025. SHAREWARE.  If you have any suggestions, you are invited to send me a
  1026. note!!
  1027.  
  1028.    Here is a list of some major things:
  1029.  
  1030.    * editing is not very comfortable now, improve it (history, block
  1031.      editing..)
  1032.  
  1033.    * use CGFonts for output
  1034.  
  1035.    * function plotting, perhaps internal or external using ARexx (seems
  1036.      that Graph2D needs a better ARexx port..)
  1037.  
  1038.    * export expressions as TeX,...
  1039.  
  1040.    * calculate integrals (do you REALLY believe, I manage this...)
  1041.  
  1042.    * the greek font is rendered by IntelliFont and doesn't look very
  1043.      pretty (does any have a designed one??)
  1044.  
  1045.    * use integers of arbitary length
  1046.  
  1047.    * OS independet kernel and different portations
  1048.  
  1049.    * rewrite the parser, offering things like proceduresfor,
  1050.      whileif statements, enter complex numbers as e.g.
  1051.      2i, etc.
  1052.  
  1053.    * a whole bunch of small improvementes...
  1054.  
  1055. Known bugs
  1056. **********
  1057.  
  1058.    If you find a bug, not documented feature etc. don't hesitate, TELL
  1059. ME.
  1060.  
  1061.    Here are those nasty things I know, but didn't manage to remove 'em
  1062. (for now):
  1063.  
  1064.    * my MUI-CustomClass 'eats' all keyboard input, disabling the tab-key
  1065.      and button shortcuts.. Currently there is only a workaround for
  1066.      the tab-key, but things are still quite ugly...
  1067.  
  1068.    * you get sometimes problems with object names ending with an 'e',
  1069.      try m_e+pi (no spaces!!). m_e + pi (with spaces!!) works...
  1070.  
  1071.    * I'm using the mathieeedoub*.library for floatpoint processing.
  1072.      Seems that it's not too precise; 0.4 * 5.0 is 2 ± 1e-16!!
  1073.      When trying to convert floats into fraction, LAPLACE ignore
  1074.      differences smaller than 1e-15...
  1075.  
  1076.    * Taylor approximation crashes, if you try to evaluate at an a,
  1077.      where the function is not defined, e.g. taylor( (ln(x))(x), 0, 2
  1078.      ).
  1079.  
  1080.    * Support for complex numbers is not fully implemented. And that's
  1081.      what already done is quite crappy ;-) Try something like i^2 and
  1082.      you see what I mean...
  1083.  
  1084.    * ARexx port is currently not working, and the docs for it are
  1085.      neither converted to Texinfo nor translated to german.
  1086.  
  1087.    * Things like constant operator set and constant operator
  1088.      equation don't work. This is not a real bug, but a conceptual
  1089.      problem of LAPLACE. To change it some internal changes have to
  1090.      be done that are not insignificant!
  1091.  
  1092.    * It is reported, that the amigaguide.datatype V40 has problems
  1093.      with some parts of the AmigaGuide-manual (the german
  1094.      Anleitung cannot be loaded).  This doesn't happen with V39.
  1095.      Has anyone the same problem and knows the reason and/or a solution?
  1096.  
  1097. Competitors
  1098. ***********
  1099.  
  1100.    There are many other math programs for different operating systems,
  1101. but I will only look at those available for AMIGA. Well most of them are
  1102. quite professional projects, with lots of studied coders and
  1103. mathematicians behind, so I cannot compete with them. But just have a
  1104. look at them.
  1105.  
  1106. MAPLEV
  1107. ======
  1108.  
  1109.    Well, what to say about it? I didn't see the AMIGA version, but I
  1110. know the UN*X version, and I think there are not many differences, at
  1111. least I think the mathematical functionality is the same.
  1112.  
  1113.    MapleV does almost everythink for you, you can think of. Integrals,
  1114. differential equations, eigenvectors, function plotting etc. If there
  1115. would not be a small problem, I would have never written LAPLACE: the
  1116. price. DM1500.- is a lot of money, which I cannot afford. This was
  1117. probably the main reason to create LAPLACE. Although there is a
  1118. cheaper student version for AMIGA systems, I will continue my work,
  1119. 'cause it's too much work to be wasted!  If the price is not a problem
  1120. for you, don't hesitate to erase LAPLACE from your harddisk.
  1121.  
  1122. PARI
  1123. ====
  1124.  
  1125.    PARI is a freeware project of the university of Bordeaux, France. It
  1126. lack a graphical user interface, but offers some interesting features.
  1127. The biggest advantage is: it's really fast! PARI's best sides are
  1128. algebraic calculus, polynomials and power series. On the other side, it
  1129. is not able to integrate functions other than polynomials. For
  1130. transcendential functions a taylor expansion will be integrated, which
  1131. is at least a good approximation, but it just gives up on broken
  1132. rational functions. It has a simple function plotter and basic online
  1133. help, plus a 500k dvi-manual.
  1134.  
  1135.    PARI is available on AMINET, in misc/math/gpamiga_1_38_3.lha
  1136. (binary) and
  1137.     misc/math/pari_1_38_3.lha (source and docs). Other versions are
  1138. available at
  1139.     megrez.ceremab.u-bordeaux.fr (147.210.16.17) and
  1140. math.ucla.edu (FTP).  You can contact the authors via e-mail at
  1141. pari@ceremab.u-bordeaux.fr.
  1142.  
  1143. MuPAD
  1144. =====
  1145.  
  1146.    MuPAD is also free project of the university of Paderborn, Germany.
  1147. The AMIGA version is still an alpha release and lacks a graphical user
  1148. interface.  It requires an FPU (which I don't own), so I wasn't able to
  1149. test it. There might be an UN*X version that I can test.
  1150.  
  1151.    You can find MuPAD at math-ftp.uni-paderborn.de/pub/MuPAD/ (FTP)
  1152. and
  1153.     http://math-www.uni-paderborn.de/MuPAD/ (WWW).
  1154.  
  1155. Biography
  1156. *********
  1157.  
  1158.    Not available now...
  1159.  
  1160. Index
  1161. *****
  1162.  
  1163.  
  1164.  
  1165.  MAPLEV                                 Competitors
  1166.  PARI                                   Competitors
  1167.  About                                  About
  1168.  Address                                Address
  1169.  binary operators                       Expressions
  1170.  Boolean                                Bool
  1171.  Bugs                                   KnownBugs
  1172.  Competitors                            Competitors
  1173.  complex numbers                        Number
  1174.  Constants                              Definitions
  1175.  Copyright                              Copyright
  1176.  Definitions                            Definitions
  1177.  Editing                                Editing
  1178.  Equation                               Equation
  1179.  errordistribution                      Number
  1180.  Expression list                        Expressions
  1181.  Expressions                            Expressions
  1182.  F-keys                                 Menus
  1183.  F-keys                                 Presets
  1184.  Functions                              Definitions
  1185.  General usage                          GeneralUsage
  1186.  Getting started                        Getting started
  1187.  Greets                                 Greets
  1188.  Grek letters                           Definitions
  1189.  Installation                           Installation
  1190.  Introduction                           Introduction
  1191.  Known bugs                             KnownBugs
  1192.  Laplace, P. S. Marquis de              Biography
  1193.  Libraries                              Libraries
  1194.  Matrix                                 Matrix
  1195.  Menus                                  Menus
  1196.  MuPAD                                  Competitors
  1197.  Name conventions                       Definitions
  1198.  Number                                 Number
  1199.  Objects                                Types
  1200.  Online help                            OnlineHelp
  1201.  operators                              Expressions
  1202.  Options                                Options
  1203.  Parameters                             Definitions
  1204.  Presets                                Presets
  1205.  Project                                Project
  1206.  Registration                           Registration
  1207.  Requirements                           Requirements
  1208.  Set                                    Set
  1209.  To do                                  ToDo
  1210.  Tooltypes                              Tooltypes
  1211.  Types                                  Types
  1212.  unary operators                        Expressions
  1213.  Usage                                  Usage
  1214.  Usage                                  GeneralUsage
  1215.  Variables                              Definitions
  1216.  Vector                                 Vector
  1217.  
  1218.